package io.github.talelin.latticy.dto;

import lombok.Data;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Size;

/**
 * 积分调整DTO
 * @author talelin
 */
@Data
public class PointsAdjustDTO {

    /**
     * 用户ID
     */
    @NotNull(message = "用户ID不能为空")
    private Long userId;

    /**
     * 调整类型：add(增加), subtract(减少)
     */
    @NotBlank(message = "调整类型不能为空")
    private String adjustType;

    /**
     * 积分数量
     */
    @NotNull(message = "积分数量不能为空")
    private Integer points;

    /**
     * 调整原因
     */
    @NotBlank(message = "调整原因不能为空")
    @Size(max = 100, message = "调整原因长度不能超过100个字符")
    private String reason;

    /**
     * 详细说明
     */
    @Size(max = 255, message = "详细说明长度不能超过255个字符")
    private String description;

    /**
     * 操作员ID
     */
    private Long operatorId;

    /**
     * 操作员姓名
     */
    private String operatorName;
}

